/**********************************
 * @Author: Your Name
 * @LastEditTime: 2025-11-08
 * Copyright © 2025 Your Name
 **********************************/

/**
 * 主题相关的实用工具函数
 */

/**
 * 获取适应主题的样式类
 * @param {Object} configs - 样式配置
 * @param {string} configs.light - 浅色模式样式
 * @param {string} configs.dark - 深色模式样式
 * @param {string} configs.common - 通用样式
 * @returns {string} 组合的样式类
 */
export function getThemeClass({ light = '', dark = '', common = '' } = {}) {
  const classes = [common]
  if (light) classes.push(light)
  if (dark) classes.push(`dark:${dark}`)
  return classes.join(' ')
}

/**
 * 获取背景色样式类（自动主题适配）
 * @param {string} lightBg - 浅色背景
 * @param {string} darkBg - 深色背景
 * @returns {string} 背景色样式类
 */
export function getBgClass(lightBg = 'bg-white', darkBg = 'bg-dark') {
  return `${lightBg} ${darkBg ? `dark:${darkBg}` : ''}`
}

/**
 * 获取文字颜色样式类（自动主题适配）
 * @param {string} lightColor - 浅色文字
 * @param {string} darkColor - 深色文字
 * @returns {string} 文字颜色样式类
 */
export function getTextClass(lightColor = 'text-gray-900', darkColor = 'text-gray-100') {
  return `${lightColor} ${darkColor ? `dark:${darkColor}` : ''}`
}

/**
 * 获取边框样式类（自动主题适配）
 * @param {string} lightBorder - 浅色边框
 * @param {string} darkBorder - 深色边框
 * @returns {string} 边框样式类
 */
export function getBorderClass(lightBorder = 'border-gray-200', darkBorder = 'border-gray-700') {
  return `${lightBorder} ${darkBorder ? `dark:${darkBorder}` : ''}`
}

/**
 * 预定义的常用主题样式组合
 */
export const themePresets = {
  // 卡片容器
  card: {
    container: 'card-border',
    background: 'auto-bg',
    padding: 'p-16',
    radius: 'rounded-8'
  },
  
  // 搜索容器
  search: {
    container: 'auto-bg',
    border: 'border card-border',
    padding: 'p-16',
    radius: 'rounded-8'
  },
  
  // 按钮组
  buttonGroup: {
    container: 'auto-bg',
    border: 'border card-border',
    padding: 'p-12',
    radius: 'rounded-8'
  },
  
  // 树形容器
  treeContainer: {
    background: 'auto-bg',
    border: 'border card-border',
    padding: 'p-16',
    radius: 'rounded-8'
  },
  
  // 表单项目
  formItem: {
    label: 'text-gray-700 dark:text-gray-300',
    labelWidth: 'flex-shrink-0',
    content: 'flex-shrink-0'
  }
}

/**
 * 创建主题适配的容器组件样式
 * @param {string} type - 容器类型
 * @param {Object} options - 额外选项
 * @returns {Object} 主题样式配置
 */
export function createThemeStyles(type, options = {}) {
  const preset = themePresets[type]
  if (!preset) {
    console.warn(`Unknown theme preset type: ${type}`)
    return {}
  }
  
  return {
    ...preset,
    ...options
  }
}